﻿namespace dogd
{
	/// <summary>
	/// Generates CRUD-type sql.
	/// </summary>
	public interface ISqlGenerator
	{
		/// <summary>
		/// Generates sql for the crud operation.
		/// </summary>
		/// <param name="crudOption">The CRUD operation.</param>
		/// <returns>SQL text.</returns>
		string GenerateFor(CrudOption crudOption);

		/// <summary>
		/// Generate sql for the crud operation.
		/// </summary>
		/// <param name="crudOption">The CRUD operation.</param>
		/// <param name="filters">Optional filters.</param>
		/// <returns>SQL text.</returns>
		string GenerateFor(CrudOption crudOption, FilterByCollection filters);
	}
}
